将值设置为结构指针 #包括 #包括 #包括 类型定义结构{ 字符**大小; }事物; 类型定义结构{ 东西,东西; }游戏; 无效加载_数组(Thing*Thing){ int i,j; char**emptyThing=malloc(sizeof(char**)); 清空=malloc(sizeof(char*)*9); 对于(i=0;i thingSize=emptyThing; 免费(清空); } int main(int argc,char*argv[]){ 游戏*游戏; 加载_数组(游戏->物品); printf(“HI”); }
我得到了一个分割错误,我发现问题线是。将值设置为结构指针 #包括 #包括 #包括 类型定义结构{ 字符**大小; }事物; 类型定义结构{ 东西,东西; }游戏; 无效加载_数组(Thing*Thing){ int i,j; char**emptyThing=malloc(sizeof(char**)); 清空=malloc(sizeof(char*)*9); 对于(i=0;i thingSize=emptyThing; 免费(清空); } int main(int argc,char*argv[]){ 游戏*游戏; 加载_数组(游戏->物品); printf(“HI”); },c,C,我得到了一个分割错误,我发现问题线是。 thing->thingSize=emptyThing; 我试图将thingSize设置为等于清空的2d数组。正如Fredrik所说,游戏指针没有初始化为任何值。它包含一个垃圾值,当取消引用它时,您将得到一个SEGFULT。正如Fredrik所说,游戏指针没有初始化为任何值。它包含一个垃圾值,当取消引用它时,您将得到一个segfault.你从哪里得到魔法数字9?游戏没有初始化…你的整个代码看起来毫无意义。我认为你应该研究指针,尝试编写包含指针的非常简单的程
thing->thingSize=emptyThing;
我试图将thingSize设置为等于清空的2d数组。正如Fredrik所说,游戏指针没有初始化为任何值。它包含一个垃圾值,当取消引用它时,您将得到一个SEGFULT。正如Fredrik所说,游戏指针没有初始化为任何值。它包含一个垃圾值,当取消引用它时,您将得到一个segfault.你从哪里得到魔法数字
9
?游戏没有初始化…你的整个代码看起来毫无意义。我认为你应该研究指针,尝试编写包含指针的非常简单的程序,然后再尝试编写包含多个指针、指向指针的指针、指针数组等的代码。你在哪里做你从?game
得到的神奇数字9
没有初始化…你的整个代码看起来毫无意义。我认为你应该研究指针,尝试编写包含指针的简单程序,然后再尝试编写包含多个指针、指向指针的指针、指针数组等的代码。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char** thingSize;
} Thing;
typedef struct {
Thing* thing;
} Game;
void load_array(Thing* thing) {
int i, j;
char **emptyThing = malloc(sizeof(char**));
emptyThing = malloc(sizeof(char*)*9);
for(i=0; i<9; i++) {
emptyThing[i] = malloc(sizeof(char)*9);
}
thing -> thingSize = emptyThing;
free(emptyThing);
}
int main(int argc, char* argv[]) {
Game* game;
load_array(game -> thing);
printf("HI");
}