C 中可变数组大小的动态数组分配
可变大小的数组,也称为动态数组,对标准 C 提出了挑战考虑以下程序:
<br>int 大小= 0;<br>int n = 0;<br>FILE* 图片;<p>图片 = fopen("test.jpg", "r");<br>fseek(图片, 0, SEEK_END) ;<br>大小 = ftell(图片);</p><p>char Sbuf[大小];<br>fseek(图片, 0, SEEK_SET); //转到文件的开头<br>while (!feof(picture)) {</p><pre class="brush:php;toolbar:false">n = fread(Sbuf, sizeof(char), siz, picture); /* ... do stuff with the buffer ... */ /* memset(Sbuf, 0, sizeof(Sbuf)); */
}
上面的代码尝试分配一个字符数组,其大小由变量 siz 确定。然而,在标准 C 中,数组大小必须是常量。这就提出了一个问题:我们如何正确声明 siz 以允许代码编译?
不幸的是,在标准 C 中没有直接的方法来声明具有可变大小的数组。但是,存在几种替代方法:
以上是如何在标准 C 中声明可变大小的数组?的详细内容。更多信息请关注PHP中文网其他相关文章!