Aborted (core dumped)
*** stack smashing detected ***: <unknown> terminated
Aborted (core dumped)
از pointerها توی کدت استفاده کردی؟سلام.بله.از ارایه های کاراکتری استفاده شده.
یعنی واقعا منتظر جوابی. بدون نمونه کد تقریبا غیر ممکن است به پاسخ برسی.ببخشید به سورس ها دسترسی نداشتم.الان یک کدی نوشتم(بسیار مبتدی هستم) و با موفقیت کامپایل شد.ران هم شد.اما بعد از وارد کردن عدد مد نظر این ارور رو گرفتم(که البته میدونم به دلیل قرار دادن %s به جای %c هست.میخوام بدونم این ارور به دلیل سینتکس هست یا دلایل دیگری داره؟
#include<stdio.h>
int main(){
char chara[]={'a','b','c','d','e','f','j'};
int i;
scanf("%d",&i);
printf("Your day is %s",chara[i]);
}
Segmentation fault (core dumped)
میخوام بدونم این ارور به دلیل سینتکس هست یا دلایل دیگری داره؟بله دقیقاً به خاطر همین خطای سینتکس هستش که باعث می شه حافظه (memory) به درستی اختصاص پیدا نکنه.
اما بعد از وارد کردن عدد مد نظر این ارور رو گرفتم(که البته میدونم به دلیل قرار دادن %s به جای %c هست.میخوام بدونم این ارور به دلیل سینتکس هست یا دلایل دیگری داره؟خیر، مشکل Syntax نیست. مشکلات Syntax باعث میشن که اصلا کد شما کامپایل نشه.
دقیقا ... این syntax error نیست ... این یه جور logic error هست ...اما بعد از وارد کردن عدد مد نظر این ارور رو گرفتم(که البته میدونم به دلیل قرار دادن %s به جای %c هست.میخوام بدونم این ارور به دلیل سینتکس هست یا دلایل دیگری داره؟خیر، مشکل Syntax نیست. مشکلات Syntax باعث میشن که اصلا کد شما کامپایل نشه.
اما بعد از وارد کردن عدد مد نظر این ارور رو گرفتم(که البته میدونم به دلیل قرار دادن %s به جای %c هست.میخوام بدونم این ارور به دلیل سینتکس هست یا دلایل دیگری داره؟خیر، مشکل Syntax نیست. مشکلات Syntax باعث میشن که اصلا کد شما کامپایل نشه.
"nixoeen" ببخشید من با فضای این فروم آشنا نیستم اگه جای نامناسبی سوال می پرسم :-k
الان اسم این مشکل چی می شه ؟ چون خطای منطقی (https://en.wikipedia.org/wiki/Logic_error) هم که "محمدرضا مقیمی" گفتن به خطایی می گن که خروجی غلط بده ولی باعث کرش نشه الان مشکل "Mr-virus" کرش می ده اسمش چی می شه ؟
لان اسم این مشکل چی می شه ؟طبقهبندیهای مختلفی وجود داره، ولی من به نام Runtime Error میشناسمش.
سلام دوستان عزیز.بنده یک مشکلی دارم در زبان c.بنده گاهی اوقات که قصد کامپایل برخی کدها با gcc رو دارم خطای زیر رو میگیرم.کد: [انتخاب]Aborted (core dumped)
و گاهی بعد از کامپایل و موقع اجرای کد این خطار رو میگیرم.این به چه دلیل هست؟(در حال حاضر به کدها دسترسی ندارم خدمتتون ارسال کنم).کد: [انتخاب]*** stack smashing detected ***: <unknown> terminated
Aborted (core dumped)
#include<stdio.h>
#include <stdlib.h>
int main()
{
int j ,i , x[i] ;
printf("please enter a number\n");
scanf("%d" , &i);
for( j = 0 ; j < i ; j++ )
{
scanf("%d",x[j]);
}
for(j = 0 ; j < i ; j++ )
{
printf ("\nx is %d" , x[j]);
}
}
که ارور زیر رو برمیگردونه بعد از اجرا و وارد کردن دومین عدد:Segmentation fault (core dumped)
int i;
scanf("%d",&i);
int *x=malloc (sizeof(int) *i);
int i ,j;
printf("please enter array length: ");
scanf("%d", &i);
int x[i];
for( j = 0 ; j < i ; j++)
{
scanf("%d", &x[j]);
}
int x[i]={0};
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int i;
scanf("%d",&i);
int *x = malloc(sizeof(int) *i);
if (!x){
printf("Memory alocation failed ...\n");
///handle failed case
}
free(x);
return 0;
}
اعلان و تعریف متغیر به فرم [i ] x صحیح نیست.سلام.ممنون از توجهتون.بنده اومدم در همین سورس یک تغییر ایجاد کردم به صورتی که
شما متغیر عددی i را مقدار دهی اولیه نکردین. initialize
الان به دلیل اینکه متغیر i مقدار اولیه نامعتبر Garbage Value دارد تعریف آرایه به طول i صحیح نیست.
#include<stdio.h>
#include <stdlib.h>
int main()
{
int j ,i = 5, x[i] ;
printf("please enter a number\n");
scanf("%d" , &i);
for( j = 0 ; j < i ; j++ )
{
scanf("%d",x[j]);
return 12;
}
for(j = 0 ; j < i ; j++ )
{
printf ("\nx is %d" , x[j]);
return 13;
}
}
scanf اول چه عددی می زنید؟
پس از هر اسکن عدد موجود در آن متغیر را چاپ کنید.
درکل گام به گام پیش برید
اول ببینید اسکن کردن تا مقادیر درون آرایه درست انجام میشه.
بعد سعی کنید محتوای آرایه را چاپ کنید
scanf("%d",&x[j]);
c scanf int array
تابع اسکن را به این شکل استفاده کنید.ممنونمکد: [انتخاب]scanf("%d",&x[j]);
برای اینکه از این دست مشکلات دیگر نداشته باشید
۱) مستندات لازم برای استفاده توابع را مطالعه بفرمایید.
https://en.cppreference.com/w/c/io/fscanf
۲) درصورتی که با کامپایلر GCC کار می کنید آرگومان Wall را در زمان کامپایل فعال کنید بسیاری از اشکلات اینچنینی را گزارش می کند.
۳) از گوگل و استک اوورفلو استفاده کنید.مثلا جستجو عبارتی نظیر این شما را به نحوه صحیح استفاده از اسکن راهنمایی می کند.کد: [انتخاب]c scanf int array
پی نوشت
۱) این مشکل به وضوح خطای زمان اجراست.
Runtime error
۲) به دلیل مشکلات scanf از تابع fscanf استفاده کنید.
۳) این شکل صدا زدن اسکن مناسب برای آرایه کاراکتری است بدون &