C语言中从宽字符数组打印元素
我有以下宽字符数组:C语言中从宽字符数组打印元素,c,segmentation-fault,wcs,C,Segmentation Fault,Wcs,我有以下宽字符数组: wchar_t alphabet[] = L"abcdefghijklmnñopqrstuvwxyz"; /* array of wide characters */ 每次我尝试运行以下代码时,都会出现分段冲突错误 printf("%ls %d\n", alphabet, wcslen (alphabet)); int i; for (i = 0; i <= wcslen (alphabet); i++) { printf("%ls\n", alphabe
wchar_t alphabet[] = L"abcdefghijklmnñopqrstuvwxyz"; /* array of wide characters */
每次我尝试运行以下代码时,都会出现分段冲突错误
printf("%ls %d\n", alphabet, wcslen (alphabet));
int i;
for (i = 0; i <= wcslen (alphabet); i++)
{
printf("%ls\n", alphabet[i]);
}
如何更正此错误?您的循环超出了数组范围
数组是从0索引的,因此像您这样的循环中的条件应该始终使用测试,因为您的循环超出了数组 数组是从0索引的,因此像您这样的循环中的条件应该始终使用%ls进行测试,这会导致字母表[i]被解释为指向字符串的指针。使用%lc。%ls会将字母表[i]解释为指向字符串的指针。使用%lc。字母表[]的@unwind sequely索引范围为0。字母表[]的@unwind sequely索引范围为0