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;
}
È stato utile?

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
scroll top