C 字符数组
我正在尝试使用calloc构建一个单词的字符数组 我所拥有的:C 字符数组,c,arrays,C,Arrays,我正在尝试使用calloc构建一个单词的字符数组 我所拥有的: char** word; word=(char**)calloc(12,sizeof(char*)); for(i=0;i<12;i++){ word[i]=(char*)calloc(50,sizeof(char)); } char**word; word=(char**)calloc(12,sizeof(char*); 对于(i=0;i而言,代码是正确的。以下几点: 无需强制转换calloc()的返回值 sizeof(
char** word;
word=(char**)calloc(12,sizeof(char*));
for(i=0;i<12;i++){
word[i]=(char*)calloc(50,sizeof(char));
}
char**word;
word=(char**)calloc(12,sizeof(char*);
对于(i=0;i而言,代码是正确的。以下几点:
- 无需强制转换
calloc()的返回值
sizeof(char)
保证为1
因此,代码可以重写为:
char** word;
int i;
word = calloc(12, sizeof(char*));
for (i = 0; i < 12; i++)
word[i] = calloc(50, 1);
正如使用sizeof
的一种不太容易出错的方法所述:
word = calloc(12, sizeof(*word));
+使用sizeof*ptr_变量
可以降低使用sizeof
出错的概率。
word = calloc(12, sizeof(*word));