2011-12-16 42 views

回答

4

创建无固定尺寸的阵列的唯一方法是通过使用malloc,它接受要分配的存储器的尺寸(以字节为单位)。然后您将使用它作为char*,它也可以容纳数组语法。 不要忘记测试返回值是非零(这是方式malloc表明你是内存不足)。

您所使用的内存完成后,你则负责与free其释放回系统。

例如:

size_t size = 42; // you can read this from user input or any other source 
char* str = malloc(size); 

if (str == 0) { 
    printf("Insufficient memory available\n"); 
} 
else { 
    // Use the memory and then... 
    free(str); 
} 
+0

**电话**不要从`malloc`将返回值。在C语言中,最好是冗余的,并且可能隐藏编译器在没有投射的情况下会捕获的错误。 – pmg 2011-12-16 23:09:41

+0

@pmg你可以举一个例子,其中编译器隐藏了一个实际的错误信息。我试图制作一个,但失败了。 – Mahesh 2011-12-16 23:11:20

3

查找的mallocrealloc的功能。

我假定非固定尺寸是指动态分配的数组 - 其可以使用malloc获得。