无法访问结构内的字符(字符串)数组



提前谢谢你,我是C编程新手,所以我会尽可能地解释我的问题。我无法访问结构体字符数组中的任何元素,我得到了"分割错误",结构体被实现为堆栈。

 typedef struct Nodo
 {
  int valor;
  char nombre[50];
 }Nodo;
 
 void push(Nodo** p, int v, char nom[])/*char aut,char gen,int valo*/
 {
   Nodo *nuevo = (Nodo*)malloc(sizeof(Nodo));
   nuevo->valor=v;
   nuevo->nombre[50];
   nuevo->sig=*p;
   *p=nuevo;
 }
  
 void getliner(char* nom[50])
 {
   printf("Escriba el nombre de la canciónn");
   fgets(nom, 50, stdin);
   nom[strlen(nom) -1] = '';
   printf("The user has entered %sn",nom);
 }
 void clear(void)
 {
   while ( getchar() != 'n' );
 }
 int main(int argc, char const *argv[])
 {
   int i = 0;
   char nom[50];
   Nodo* p = NULL;
   printf("Agregar texton");
   getliner(&nom);
   for(int i = 0;nom[i]=='';i++)
   {
     p->nombre[i]=nom[i];
   }
   printf("%cn",p->nombre[0]);
  {

main中,您有:

Nodo *p = NULL;
...
for ( ... ) {
    p->nombre[i]=nom[i];
}

所以pNULL,它不指向任何东西。因此产生的分割错误是不足为奇的。

使用malloc分配内存,或者不使用指针。

最新更新