Perché è questo codice di causando errore di runtime?
-
20-09-2019 - |
Domanda
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *a = "Hello ";
const char *b = "World";
printf("%s", strcat(a, b));
system("PAUSE");
return EXIT_SUCCESS;
}
Soluzione
Perché si sta scrivendo i dati in una posizione di memoria che non si possiede.
In effetti, quando si esegue strcat, si sta aggiungendo i caratteri della stringa b subito dopo i caratteri di stringa a. Ma non si è sostenuto per la memoria dopo la stringa a.
Altri suggerimenti
Quando si è concatenato b per una che si sta scrivendo in memoria non è stata allocare,
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow