我想要的是创建具有特定lenght一个新的字符串的函数。 这是代码:问题与字符串创建Ç
char* newString(int lenght){
char* newstring =(char*)((calloc(lenght, sizeof(char))));
newstring[lenght] = '\0';
return newstring;
}
我使用了这种方式:
char* string = newString(10);
我的问题是,当我这样做:
printf("String lenght %lu \n",strlen(string));
我得到0,但我不知道理解为什么。 我是新手与C 感谢您的时间
因为'calloc'零初始化您的数组,并且您从不填充任何东西。此外,它的拼写“长度” –
...你正在使用'T [lenght] =“\ 0''不分,从而调用不确定的行为超出分配给您的长度。 C中的数组是零基索引的。含义'0 ...(lenght-1)'是索引的允许范围。 – WhozCraig
't [length] ='\ 0';'是一个超出限制的写入。 – Xaqq