【发布时间】:2021-04-15 04:36:35
【问题描述】:
我试图理解具有typedef char * 的代码我应该为字符串"Pointer of" 和"Redundancy" 分配足够的内存。
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
typedef char* DString;
DString dstring_initialize(const char* str);
int main(void)
{
DString str1, str2;
str1 = dstring_initialize("Pointer of ");
str2 = dstring_initialize("Redundancy ");
return 0;
}
DString dstring_initialize(const char* str)
{
str = malloc((strlen(str)+1)*sizeof(DString));//mycode
return str;//mycode
}
我 100% 确定我做错了。我唯一应该做的就是更改上面写着mycode 的部分。就是这样发给我的,但我之前说过,我不知道它是如何工作的,如果有人可以详细解释给我,我将不胜感激
【问题讨论】:
-
str = malloc((strlen(str)+1)*sizeof *str);(此方法适用于任何类型)
标签: c string pointers malloc dynamic-memory-allocation