Conversation
ArtemNik1tin
left a comment
There was a problem hiding this comment.
Вынесите логику из main, в остальном нормально
| @@ -0,0 +1,7 @@ | |||
| #pragma once | |||
|
|
|||
| int cleanStr(const char* q); | |||
| #include <stdlib.h> | ||
| #include <string.h> | ||
|
|
||
| int cleanStr(const char* q) |
There was a problem hiding this comment.
Тут что-то странное происходит, функция по сути просто считает количество элементов в строке. А ещё называть переменные одной буквой плохо)
There was a problem hiding this comment.
Если эта функция вообще нужна, назовите например getSizeBeforeLineBreak
|
|
||
| char* copyStr(const char* buffer, int j) | ||
| { | ||
| char* copy = malloc(j + 1); |
There was a problem hiding this comment.
Добавьте проверку аллокации. А ещё называть строку глаголом в повелительном наклонении странновато
| char* copyStr(const char* buffer, int j) | ||
| { | ||
| char* copy = malloc(j + 1); | ||
| for (int i = 0; i < j; i++) { |
There was a problem hiding this comment.
А что если j больше чем размер буфера?
| return j; | ||
| } | ||
|
|
||
| char* copyStr(const char* buffer, int j) |
There was a problem hiding this comment.
| char* copyStr(const char* buffer, int j) | |
| char* copyStr(const char* source, int numberOfCharsForCopying) |
| word[len] = '\0'; | ||
| int y = cleanStr(word); | ||
| char* cleanWord = copyStr(word, y); | ||
| free(word); |
There was a problem hiding this comment.
Подумайте как можно обойтись без этой аллокации
There was a problem hiding this comment.
А то на одно слово 2 раза память выделяется, причём первый раз сильно больше чем нужно в действительности
| } | ||
| if (commaCount == n - 1) { | ||
| i++; | ||
| while (q[i] != ',' && i < strlen(q)) { |
There was a problem hiding this comment.
Вынесите в отдельную функцию, а то копипаст получается
| } | ||
|
|
||
| int dots = 0; | ||
| while (str[i] != '\0') { |
|
|
||
| char* copy = copyStr(buffer, k); | ||
|
|
||
| char** tempData = realloc(data, rows * sizeof(char*)); |
There was a problem hiding this comment.
Так делать плохо, во-первых из-за того что частые реаллокации создают проблему фрагментации памяти, во-вторых системные вызовы это дорого, нужно пытаться их оптимизировать
| #include <stdlib.h> | ||
| #include <string.h> | ||
|
|
||
| int main() |
There was a problem hiding this comment.
Тут не должно быть никакой логики, попилите на функции и сделайте какое-нибудь представление таблицы в виде структуры, чтобы можно было разные файлики подгружать, а не только "files/input3.csv"
No description provided.