我有一个字符串:
char string[] = "hello";
下一步,我要为新字符串分配内存,该字符串也应获取先前的字符串
int length = strlen(string);
char* string1 = (char*) malloc((length + 1) * sizeof(char));
for(int i = 0; i < length; i++)
{
string1[i] = string[i];
}
string1[length] = '\0'; // I know that I'm loosing this information in the next steps
然后我想调用一个函数,该函数应创建如下的c字符串数组:“ H”,“ He”,“ Hel”,“ Hell”,“ Hello”
main()中的调用:
char** finalString = stutterstring(string1);
free(finalString);
函数本身:
char** stutterstring(char* string)
{
int length = strlen(string);
char** newstring = (char**) malloc(100 * sizeof(char*)); // how allocate memory correct?
int newLen = 1;
for(int i = 0; i < length; i++)
{
for(int k = 0; k < newLen; k++)
{
newstring[i][k] = string[k]; // yields to a seg fault
}
newLen++;
}
return newstring;
}
我想知道两件事: 1.)我应该如何为c字符串数组正确分配内存?我刚带了100个。
2。)行newstring[i][k] = string[k]
产生段故障。在这种情况下,我不知道如何编写正确的语法