سؤال

#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;
}
هل كانت مفيدة؟

المحلول

ولأنك كتابة البيانات في موقع الذاكرة التي لا تملك.

والواقع، عند تشغيل strcat، كنت إلحاق الأحرف من سلسلة ب مباشرة بعد الأحرف من سلسلة أ. ولكنك لم أدعى للذاكرة بعد سلسلة أ.

نصائح أخرى

وعندما كنت وصل ب لكنت تكتب في الذاكرة التي لم تخصص،

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top