C编程:带有C字符串数组的2D数组

时间:2019-01-14 10:02:47

标签: c arrays

我有一个字符串:

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]产生段故障。在这种情况下,我不知道如何编写正确的语法

0 个答案:

没有答案