【发布时间】:2016-01-21 09:41:20
【问题描述】:
我有两个字符数组:a,b。如何使用循环“for”创建新数组 vet,它是两个交替数组 a、b 的并集?
#include <stdio.h>
int main(void) {
char a[] = "BNSIO";
char b[] = "EISM\a";
char vet[sizeof(a) + sizeof(b)];
for (int i = 0; i < (sizeof(a) + sizeof(b)); i++) {
}
for (int i = 0; i < (sizeof(a) + sizeof(b)); i++){
printf("%c", vet[i]);
}
}
【问题讨论】:
-
你知道
a和b大小一样吗? -
char vet[sizeof(a) + sizeof(b)];这分配了过多的 1 个字节,因为您正在为两个空终止符分配空间。正确的代码是:sizeof(a)-1 + sizeof(b)-1 + ... + sizeof(n)-1 + 1