Когда я запускаю мой код указатель повреждаетсяМой указатель становится коррумпированным и я понятия не имею, почему
главный
#include <iomanip>
#include <iostream>
#include "Bucket.h"
using namespace std;
int main()
{
const int numberCount = 11;
int startingNumbers[numberCount] = { 100, 79, 255, 355, 70, 85, 10, 5, 47, 62, 75 };
cout << "Initial Numbers" << endl;
for (int count = 0; count < numberCount; count++)
{
cout << startingNumbers[count] << " ";
}
cout << endl;
bucketSort(startingNumbers, numberCount);
system("pause");
}
Bucket.h
void bucketSort (int startingNumbers[], int numberCount);
Bucket.cpp
#include <iostream>
#include "Bucket.h"
using namespace std;
void bucketSort(int startingNumbers[], int numberCount)
{
const int cols = 10;
const int rows = 11;
int row = 0;
int input = 0;
int *finger[cols];
int table[rows][cols];
for (int count = 0; count < numberCount; count++)
{
row = startingNumbers[count] % 10;
table[row][count] = startingNumbers[count];
finger[count] = &table[row][count];
}
for (int count = 0; count < numberCount; count++)
{
for (int col = 0; col < cols + 1; col++)
{
if (table[count][col] == *finger[col])
{
startingNumbers[input] = *finger[col];
input++;
}
}
}
for (int count = 0; count < numberCount; count++)
{
cout << startingNumbers[count] << endl;
}
}
Это не так я коррумпирован в соответствии с визуальной студией до конца, я неправильно использую указатель?
Здесь 'input ++;' может быть больше размера массива. Вы запишитесь за конец массива, развращая значения других переменных. –
Я бы сбросил C++ 14 из тегов. – drescherjm
Рекомендуемое исправление? – Evan