Когда я ввожу «1073741824», он возвращает «Ошибка сегментации».
"1073741824" равно 4294967296 ÷ 4, что составляет (INT_MAX + 1) ÷ (sizeof (char *)).
, а также это параметр malloc () в этомкод.
Но я не знаю, как решить эту проблему.
Помогите мне, пожалуйста.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <limits.h>
int main(int argc, char **argv)
{
int val, i;
char *mem;
if (argc < 2)
exit(1);
val = atoi(argv[1]);
if (val > 0) {
mem = malloc(val * sizeof(char *));
if (mem == NULL) {
printf("Failure\n");
exit(2);
}
}
for (i = 0; i < val; i++) {
mem[i] = 'A';
printf("%c", mem[i]);
}
printf("\n");
return 0;
}