Я хочу инициализировать массив символов, а затем передать его в функцию, которая анализирует аргументы командной строки.Я хочу, чтобы эта функция перезаписывала массив символов во входной аргумент из командной строки, а затем выполняла некоторые синтаксические проверки отдельных символов в этом массиве.
Я не показываю исходный код, над которым я работал, но я думаю, что у меня есть пример программы, чтобы выделить то, с чем я борюсь
#include <stdio.h>
#include <stdlib.h>
void changeArray(char **arr){
printf("Array is %s\n",*arr);
printf("This character is %c\n",*arr[0]);
printf("This character is %c\n",*arr[1]); //segmentation fault here
printf("This character is %c\n",arr[2]);
printf("This character is %c\n",arr[3]);
printf("This character is %c\n",arr[4]);
*arr = "bingo";
printf("Array is %s\n",*arr);
printf("This character is %c\n",arr[0]);
printf("This character is %c\n",arr[1]);
printf("This character is %c\n",arr[2]);
printf("This character is %c\n",arr[3]);
printf("This character is %c\n",arr[4]);
}
int main(int argc, const char* argv[]){
char *blah = "hello";
printf("Array is %s\n",blah);
printf("This character is %c\n",blah[0]);
printf("This character is %c\n",blah[1]);
printf("This character is %c\n",blah[2]);
printf("This character is %c\n",blah[3]);
printf("This character is %c\n",blah[4]);
changeArray(&blah);
printf("This character is %c\n",blah[0]);
printf("This character is %c\n",blah[1]);
printf("This character is %c\n",blah[2]);
printf("This character is %c\n",blah[3]);
printf("This character is %c\n",blah[4]);
printf("Array is %s\n",blah);
return 0;
}
Это вывод программы, первый индекс в массиве символов печатает букву 'h', как яожидать, но любой другой индекс заставляет меня выйти за пределы:
Array is hello
This character is h
This character is e
This character is l
This character is l
This character is o
Array is hello
This character is h
Segmentation fault