mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-07 20:50:58 +08:00
fix: Update C code for compatibility with the MSVC compiler (#949)
* Replace VLA with malloc Replace VLA with malloc to make C code compatible with cl compiler on Windows. * Fix C code for CI compiler. * Fix C code compability to CI. * check the trigger
This commit is contained in:
@@ -111,16 +111,6 @@ int popLast(ArrayDeque *deque) {
|
||||
return num;
|
||||
}
|
||||
|
||||
/* 打印队列 */
|
||||
void printArrayDeque(ArrayDeque *deque) {
|
||||
int arr[deque->queSize];
|
||||
// 拷贝
|
||||
for (int i = 0, j = deque->front; i < deque->queSize; i++, j++) {
|
||||
arr[i] = deque->nums[j % deque->queCapacity];
|
||||
}
|
||||
printArray(arr, deque->queSize);
|
||||
}
|
||||
|
||||
/* Driver Code */
|
||||
int main() {
|
||||
/* 初始化队列 */
|
||||
@@ -130,7 +120,7 @@ int main() {
|
||||
pushLast(deque, 2);
|
||||
pushLast(deque, 5);
|
||||
printf("双向队列 deque = ");
|
||||
printArrayDeque(deque);
|
||||
printArray(deque->nums, deque->queSize);
|
||||
|
||||
/* 访问元素 */
|
||||
int peekFirstNum = peekFirst(deque);
|
||||
@@ -141,18 +131,18 @@ int main() {
|
||||
/* 元素入队 */
|
||||
pushLast(deque, 4);
|
||||
printf("元素 4 队尾入队后 deque = ");
|
||||
printArrayDeque(deque);
|
||||
printArray(deque->nums, deque->queSize);
|
||||
pushFirst(deque, 1);
|
||||
printf("元素 1 队首入队后 deque = ");
|
||||
printArrayDeque(deque);
|
||||
printArray(deque->nums, deque->queSize);
|
||||
|
||||
/* 元素出队 */
|
||||
int popLastNum = popLast(deque);
|
||||
printf("队尾出队元素 = %d ,队尾出队后 deque= ", popLastNum);
|
||||
printArrayDeque(deque);
|
||||
printArray(deque->nums, deque->queSize);
|
||||
int popFirstNum = popFirst(deque);
|
||||
printf("队首出队元素 = %d ,队首出队后 deque= ", popFirstNum);
|
||||
printArrayDeque(deque);
|
||||
printArray(deque->nums, deque->queSize);
|
||||
|
||||
/* 获取队列的长度 */
|
||||
int dequeSize = size(deque);
|
||||
|
||||
@@ -73,16 +73,6 @@ void pop(ArrayQueue *queue) {
|
||||
queue->queSize--;
|
||||
}
|
||||
|
||||
/* 打印队列 */
|
||||
void printArrayQueue(ArrayQueue *queue) {
|
||||
int arr[queue->queSize];
|
||||
// 拷贝
|
||||
for (int i = 0, j = queue->front; i < queue->queSize; i++, j++) {
|
||||
arr[i] = queue->nums[j % queue->queCapacity];
|
||||
}
|
||||
printArray(arr, queue->queSize);
|
||||
}
|
||||
|
||||
/* Driver Code */
|
||||
int main() {
|
||||
/* 初始化队列 */
|
||||
@@ -96,7 +86,7 @@ int main() {
|
||||
push(queue, 5);
|
||||
push(queue, 4);
|
||||
printf("队列 queue = ");
|
||||
printArrayQueue(queue);
|
||||
printArray(queue->nums, queue->queSize);
|
||||
|
||||
/* 访问队首元素 */
|
||||
int peekNum = peek(queue);
|
||||
@@ -105,7 +95,7 @@ int main() {
|
||||
/* 元素出队 */
|
||||
pop(queue);
|
||||
printf("出队元素 pop = %d ,出队后 queue = ", peekNum);
|
||||
printArrayQueue(queue);
|
||||
printArray(queue->nums, queue->queSize);
|
||||
|
||||
/* 获取队列的长度 */
|
||||
int queueSize = size(queue);
|
||||
@@ -120,7 +110,7 @@ int main() {
|
||||
push(queue, i);
|
||||
pop(queue);
|
||||
printf("第 %d 轮入队 + 出队后 queue = ", i);
|
||||
printArrayQueue(queue);
|
||||
printArray(queue->nums, queue->queSize);
|
||||
}
|
||||
|
||||
// 释放内存
|
||||
|
||||
@@ -153,7 +153,7 @@ int popLast(LinkedListDeque *deque) {
|
||||
|
||||
/* 打印队列 */
|
||||
void printLinkedListDeque(LinkedListDeque *deque) {
|
||||
int arr[deque->queSize];
|
||||
int *arr = malloc(sizeof(int) * deque->queSize);
|
||||
// 拷贝链表中的数据到数组
|
||||
int i;
|
||||
DoublyListNode *node;
|
||||
@@ -162,6 +162,7 @@ void printLinkedListDeque(LinkedListDeque *deque) {
|
||||
node = node->next;
|
||||
}
|
||||
printArray(arr, deque->queSize);
|
||||
free(arr);
|
||||
}
|
||||
|
||||
/* Driver Code */
|
||||
|
||||
@@ -77,7 +77,7 @@ void pop(LinkedListQueue *queue) {
|
||||
|
||||
/* 打印队列 */
|
||||
void printLinkedListQueue(LinkedListQueue *queue) {
|
||||
int arr[queue->queSize];
|
||||
int *arr = malloc(sizeof(int) * queue->queSize);
|
||||
// 拷贝链表中的数据到数组
|
||||
int i;
|
||||
ListNode *node;
|
||||
@@ -86,6 +86,7 @@ void printLinkedListQueue(LinkedListQueue *queue) {
|
||||
node = node->next;
|
||||
}
|
||||
printArray(arr, queue->queSize);
|
||||
free(arr);
|
||||
}
|
||||
|
||||
/* Driver Code */
|
||||
|
||||
Reference in New Issue
Block a user