¿Estas dos líneas de código logran el mismo resultado? Si tuviera estas líneas en una función, ¿la cadena está almacenada en la pila en ambos casos? ¿Hay alguna razón fuerte por la que debería usar una sobre la otra, además de no tener que declarar el terminador nulo en la primera línea de código?En C, ¿puedo inicializar una cadena en una declaración de puntero de la misma manera que puedo inicializar una cadena en una declaración de matriz char?
char s[] = "string";
char* s = "string\0";
Solo para obtener información, no necesita el \ 0 en el segundo ejemplo. Cuando se utilizan comillas dobles, \ 0 siempre se inserta en la matriz. – RMAAlmeida
Y solo por el vocabulario, de lo que estás hablando no son asignaciones, sino declaraciones con inicializadores. Ellos obedecen diferentes reglas. MI.Si su primera declaración no está permitida como una asignación, no puede asignar matrices. –
posible duplicado de [C: diferencias entre el puntero y la matriz] (http://stackoverflow.com/questions/1335786/c-differences-between-pointer-and-array) –