【发布时间】:2015-10-19 18:33:45
【问题描述】:
我有一个 void 指针,我需要正确分配正确类型的内存。说:
char * array="20080101"
现在,我知道这个 char 字符串包含的值是 long 类型。现在,我有一个 void 指针:
void* pointer;
我需要为其分配正确的内存量并将其转换为长指针,以便它指向一个长值(20080101);
问题是我们如何做到这一点?根据我的研究,我知道我可以使用 malloc 将其分配为:
void *pointer=(long*) malloc(sizeof(long) OR sizeof(long)*strlen(array));// what should be the correct parameter.
我们如何让它指向一个 long 类型的值?我们在字符串中有我们的数组。
【问题讨论】:
-
转换回字符指针并使用
atol()来获取存储在字符串中的long int。 -
我们看到你有点困惑,你可能不知道你真正想要什么。告诉我们您的计划,将指针分配给包含单个值的 long。然后也许我们可以给出更合适的解决方案。或者至少我们可以以更好的方式为您提供建议。
-
“char string contains is a long type”不正确。
array是指向char的指针。 -
“如何在 C 中使用 malloc 正确分配内存”——首先,放弃强制转换。 it only causes harm.
标签: c pointers memory-management malloc