【发布时间】:2015-01-02 15:00:53
【问题描述】:
我只是无法将字符串数组分配给我的 char** 指针。
我的字符串在char *tempArr[12];
但我不知道如何将它们分配给我的 char** arr 变量。
首先,我分配内存使用:arr = (char**)malloc(numberOfElements * sizeof(char*));
然后我尝试为每个元素分配内存:
arr[i] = malloc(256 * sizeof(char));
我也尝试只为 char 指针分配内存,但都不起作用。我的 arr 变量中的结果是 2 到 3 个无意义的字符。
可能出了什么问题?我尝试了所有能找到的东西,结果要么是崩溃,要么是无意义的内容。
编辑:对不起,我会尝试进一步澄清。背景是,我正在将文件中的数据加载到结构中。每个结构都有char** 变量,假设是保存字符串数组。
在我的阅读代码中,我正在使用我的临时数组char* tempArr[12] 并成功地将字符串加载到其中。然后我将它传递给创建结构的函数。
问题从这里开始,我试图“转换”我传递的数组,以便它可以存储在char** arr 变量中。
【问题讨论】:
-
不清楚您要达到的目标。
-
这个问题缺少太多东西,无法通过摇摆(wild-ass-guessing)提供准确的答案。你的
arr = ...是有道理的(更重要的是,如果你失去了演员阵容,出于某种奇怪的原因,你在那里做错了,但在你的arr[i] = ...分配中是正确的)。如果它在某个函数范围内完全自包含,那么它看起来是正确的。如果char **arr是一个函数输出参数,那么它是错误的。 Post an MCVE of the REAL problem.