使用void指针动态分配字符串数组

时间:2018-03-11 13:10:49

标签: c

问题如下。我有一个void指针,我想用它分配字符串数组。是否可以将void *转换为char **,如下所示:

void* ptr = (char**)calloc(size, sizeof(char*))

然后分配该表的每一行?我目前的想法已经不多了。

1 个答案:

答案 0 :(得分:1)

Psuedo Code应该可以满足您的需求。

char **ptr = NULL;    
// Allocates an array of pointers
ptr = malloc(sizeof(char *) * (NUM_OF_STRINGS_IN_ARRAY));
If (ptr == NULL)
    return; // Do error handling here
for (int i =0; i < NUM_OF_STRINGS_IN_ARRAY; i++)
{
    // Allocates each string in the array.
    ptr[i] = malloc(strlen(STRING));
    if (ptr[i] == NULL)
    {
        return; // Do error handling here
    }
}