Указатели на массивы литералов и ошибка run-time - C (СИ)
Формулировка задачи:
Почему ошибка run-time??
main.c
temp.c
#include <stdio.h> #include <stdlib.h> void foo(); const char* p[] = {"abc","def"}; void main(void){ foo(); system("pause"); }
#include <stdio.h> void foo(){ extern const char* p; const char* str = "12345"; printf("str = %s \n",str); printf("p[0] = %s \n",p[0]); }
Решение задачи: «Указатели на массивы литералов и ошибка run-time»
textual
Листинг программы
#include <stdio.h> extern const char* p[]; void foo(){ const char* str = "12345"; printf("str = %s \n", str); printf("p[0] = %s \n", p[0]); }
Объяснение кода листинга программы
- Программа начинается с заголовка, который включает в себя заголовочный файл stdio.h.
- В теле программы объявлен указатель на массив литералов с именем p.
- Далее определена функция foo.
- Внутри функции foo объявлена переменная типа const char* с именем str, которая содержит строку
12345
. - Затем происходит вывод значения переменной str на экран с помощью функции printf.
- После этого происходит попытка доступа к первому элементу массива литералов по имени p с помощью выражения p[0].
- И затем происходит вывод значения p[0] на экран с помощью функции printf.
- Код завершается точкой с запятой.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д