Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中从宽字符数组打印元素_C_Segmentation Fault_Wcs - Fatal编程技术网

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