我用三个字符创建了一个结构:
typedef struct{
char inside;
char condition;
char whattoprint;
} array;
然后我制作一个 2d(数组类型)表并 malloc 它,现在一切都很好
然后我想调用一个函数来初始化我的表,它是这样的:
array **initialize_table(int x,int y,array **table){
int i,j;
for(i=0;i<=x;i++){
for(j=0;j<=y;j++){
table[i][j].inside='.';
}
}
return table;
}
编译器没有显示错误,但当我运行它时,“table[i][j].inside='.';”中出现段错误线,我不知道我做错了什么。 我希望你明白我的意思,如果有人能提供帮助那就太好了!
最佳答案
问题出在这几行:
for(i=0;i<=x;i++){
for(j=0;j<=y;j++){
在一个长度为x
的数组中,索引从0
到x-1
,所以它应该是
for(i=0;i<x;i++){
这样我们就不会访问不存在的索引 x
,对于内部循环也是如此:
for(j=0;j<y;j++){
关于c - 如何初始化结构中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15938156/