Witam, mam problem SIGSEGV, jednak uzywam QT Creatora i nie wiem jak go tutaj znalezc, bo nie wyskakuje mi, dopiero jak uploaduje program do testowania to sie wyswietla, moglby ktos pomoc mi w QT Creatorze ogarnac zebym mogl wykrywac? (Jest valgrind i Memcheck jakis ale nic sie nie dzieje jak klikne (screen)) Albo rozkminic co zle napisalem? Z gory dziekuje
Witam, mam problem bo wyskakuje mi SIGSEGV w testach, uzywalem QT Creator i nie mam pojecia co zrobic zeby w debugowaniu znajdowal mi te bledy.
Problem pojawia sie w tutaj. Mógłaby jakas dobra dusza pomoc?
int reverse_vector(int* tab, int size)
{
if(tab == NULL || size <= 0) return 1;
int temp;
for(int i = 0; i < size/2; i++)
{
temp = *(tab + size - i - 1);
*(tab + size - i - 1) = *(tab + i);
*(tab + i) = temp;
}
return 0;
}
void display_vector(const int* tab, int size)
{
for(int i=0; i<size; i++)
{
printf("%d ", *(tab+i)); <---------------- tutaj pokazuje blad SIGSEGV
}
}
main :
int tab1[100], tab2[100];
int *vec = tab1, *vec2 = tab2;
printf("Podaj liczby: ");
int size = read_vector(vec, 100, 0);
int wynik = reverse_vector(vec, size);
display_vector(vec2, size);
printf("\n");
display_vector(vec, size);
Kolejny SIGSEGV w programie o Histogramie mam,
tylko tutaj mi nie pokazuje w ktorej lini jest zle :
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "vector_utils.h"
int read_vector_float(float *vec, int size, float stop_value)
{
if(vec == NULL || size <= 0 ) return -1;
int sizeD = 0;
float temp;
for(int i=0; i<size; i++)
{
if(scanf("%f", &temp) != 1)
{
return -1;
}
if(temp == 0)
{
return 0;
}
sizeD++;
if(temp == stop_value)
{
sizeD--;
break;
}
*(vec + i) = temp;
}
return sizeD;
}
int create_histogram(const float *vec, int size, int *out, int out_size)
{
if(vec == NULL || size <= 0 || out == NULL || out_size <= 0) return 1;
for(int i = 0; i < 100; i++)
{
*(out + i) = 0;
}
for(int j = 0; j < size; j++)
{
float a = 0, c = 0, b = 1;
a = *(vec + j);
for(int i = 0; i < out_size; i++)
{
if( a >= c && a < b )
{
*(out + (int)c) += 1;
}
c++;
b++;
}
}
return 0;
}
void display_vector(const int* tab, int size)
{
int i;
for(i=0; i<size; i++)
{
printf("%d ", *(tab+i));
}
}
main :
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "vector_utils.h"
int main()
{
float tab1[100];
float *vec = tab1;
int tab2[100];
int *out = tab2;
int size = 0;
printf("Podaj liczby:\n");
size = read_vector_float(vec, 100, -1);
int hist = create_histogram(vec, size, out, 11);
display_vector(out, 11);
}
https://ibb.co/L9tDc7K ---- screen