C - 指针、数组和字符串[关闭]

问题描述 投票:0回答:1
  1. 为什么在声明/分配字符串时为额外字符保留足够的空间很重要?
  2. 当尝试取消引用指向 NULL 的指针时会发生什么?
  3. 下面的代码有什么问题吗?

int n = 5;

int 数组[n];

int i = 3;

数组[n] = i;

arrays c string pointers
1个回答
1
投票
  1. 因为字符串通常以 null 结尾,这意味着字符串最后有一个
    \0
    字符来告诉读取字符串的函数字符串在哪里结束。
  2. 发生的情况是,您的程序将具有未定义的行为,并且可以执行几乎任何操作。它很可能会崩溃。
  3. 您正在尝试在文件范围内声明 VLA(可变长度数组)。它需要在一个函数中。此外,由于数组只有
    array[n] = i;
    个元素,因此
    n
    会越界访问数组。
© www.soinside.com 2019 - 2024. All rights reserved.