#include <stdio.h>
int top = 1;
char stack[0][100];
//Assume stack [0] = "20"
//Assume stack [1] = "15"
for (int i=0; i<Loi; i++) {
stack[i][99] = (char ) malloc(Loi + 1 * sizeof(char));
}
push("20");
push("15");
int main() {
for (int i=0; i<Loi; i++) {
stack[i][99] = (char ) malloc(Loi + 1 * sizeof(char));
}
push("20");
push("15");
int tt = 3;
char *tpStack[13];
for (int k = 0; k < 2; k++) {
tpStack[k] = stack[tt];
tt--;
}
pop();
pop();
printf("%s", tpStack[0]);
printf("%s", tpStack[1]);
}
void pop () {
stack[top][0] = '\0';
top = top - 1;
}
char *push(char input[]) {
top++;
memcpy(stack[top], input, 100);
}
Привет, это упрощенный код очень сложного проекта. Но я считаю, что я получил важные части выше. В конечном итоге, у меня есть строки "20" и "15" в массиве, называемом стеком. Я хочу скопировать эти элементы массива в tpStack. Я успешно это делаю (это работает). Однако когда я вызываю pop (), элементы в tpStack больше не равны «20» и «15». Я новичок в C, но я предполагаю, что это связано с каким-то распределением памяти. Помилуй, я не лучший программист.