當前位置:首頁 » 編程語言 » 禁止語言C

禁止語言C

發布時間: 2022-06-27 03:03:55

c語言數據結構,調試出現訪問禁止,怎麼回事

1、
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

#define MaxSize 5

typedef struct {
int data[MaxSize];
int top;
}STACK;
STACK *S;

STACK *InitStack() //初始化
{
STACK *tmp;
tmp=(STACK *)malloc(sizeof(STACK));
if(!tmp)
{
printf("分配失敗!\n");
exit(0);
}
else
{
tmp->top = -1;
return tmp;
}
}

int Push(STACK *S ,int x) //入棧
{
if(S->top==MaxSize-1)
{
printf("棧滿!\n");
return 0;
}
else
{
//這里的S->top也出錯
S->top++;
//下面的句子出錯
S->data[S->top] =x;
}
return 1;
}

int EmptyStack(STACK *S) //判斷是否是空
{
if(S->top == -1)
return 1;
else
return 0;
}

int Pop(STACK *S) //出棧
{
int x;
if( EmptyStack(S) )
{
printf("\t棧空!\n");
exit(0);
}
x= S->data[S->top];
S->top--;
return x;
}

void main()
{
int temp;
S = InitStack();
int i,k,x;
printf("1. 入棧\n");
printf("2. 出棧\n");
printf("3. 推出\n");
printf("輸入操作:\n ");

scanf("%d",&k);
switch(k)
{
case 1:
printf("輸入入棧項:\n");
scanf("%d",&x);
temp=Push(S,x);
if(temp!=1)
printf("堆棧已滿!入棧失敗!\n");
else {
printf("成功入棧!\n"); //成功入棧
printf("%d\n",S->data[S->top]);
}
break;

case 2:
printf("出棧:\n");
for(i=0;i<MaxSize;i++)
printf("\t%d\n",Pop(S));
break;

default:
exit(0);

}
free(S);
}

這樣可能就行了
在第一步進行初始化的時候可以通過傳回來一個指針賦值給S
最後的時候對S的釋放不要再添加S了
因為S本來就是動態分配的對象

2、
如果你要使用自己的函數的話
就把InitStack()中的參數去除
因為如果你在參數中利用了這樣的一個參數的話就相當於覆蓋了全局變數中的S
最後進行返回值的時候返回的是1或0,此時的局部變數(子函數中的S)被銷毀了
這樣並沒有對S進行賦值,所以以後的訪問中會出錯

② 如何使用C語言實現禁止運行程序

我只會易語言的!我想C的思路應該和易語言差不多吧! 獲取進程列表,然後判斷是否存在某進程!還有一種使用該進程的MD5碼 判斷!目前我就知道這2個!

③ c語言中的F1怎麼禁止

你去看一下bioskey函數吧。

④ 用C語言做程序時怎樣禁止用戶輸入非數字字元,不是等用戶輸入之後再判斷,而是壓根就輸入不進去!

這是不可能的,只有你點擊之後才知道是非數字字元,
你可以用getch()來獲取字元,同時該字元不會顯示在控制台上,然後判斷該字元是否數字,如果是數字,你可以putchar該字元,這樣子看上去就可以達到你要的效果

⑤ c語言中,如何防止通過關閉進程來關閉c程序

在Windows中有很多種手段可以實現進程保護,從簡單地設置進程屬性為隱藏到系統級的SSDT Hook一應俱全。有許多貼子會介紹這些防護方法,你可以自己搜一搜,前提是你要對Windows編程模型有基本的了解。下面貼其中一篇供參考:網頁鏈接

⑥ C語言如何禁止另外的程序運行,,求給代碼。。謝謝。

禁止另外程序運行是操作系統的功能,你的程序可以通過修改系統設置達到目的。比如修改注冊表。

⑦ C語言寫控制台程序,如何禁止控制台的關閉按鈕

要攔截消息的話可以通過SetConsoleCtrlHandler和HandlerRoutine函數(msdn一下),下面是簡單例子:
#include <Windows.h>
#include <stdio.h>

BOOL MyHandler( DWORD dwCtrlType )
{
if ( dwCtrlType == CTRL_CLOSE_EVENT )
{
printf("Cannot close...\n");
return TRUE;
}

return FALSE;
}

void main()
{
SetConsoleCtrlHandler((PHANDLER_ROUTINE)MyHandler, TRUE);

printf("Please try to clsoe...\n");
while(1) {};
}

要禁止關閉按鈕的話可以直接從系統菜單里移除,比如:
#define _WIN32_WINNT 0x0500
#include <Windows.h>
#include <stdio.h>

void main()
{
DeleteMenu(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_BYCOMMAND);
DrawMenuBar(GetConsoleWindow());

printf("Now you cannot close this window...\n");
system("pause");
}

⑧ C語言中形參數組如何禁止自身指向被修改

沒有什麼辦法 只能聲明為
void f1(const char la[])

事實上 在C中沒有絕對的無法修改
即使你聲明了const
函數體裡面只要做一個
char *t = (char *)la;
然後去修改t同樣是可以的
想真正做到不修改 只能由開發者約定
然後大家共同遵守

⑨ c語言禁止某些建

用windows API HOOK掉鍵盤

⑩ C語言 禁止回顯某字元

可以用curses庫來控制屏幕輸出,例如:
/*注意,編譯時要加上 -lcurses 參數,以便引入curses庫*/
#include <curses.h>
#include <stdio.h>

int main(int argc,char *argv[])
{
char c;
initscr();/*初始化curses程序*/
noecho();/*關閉屏幕回顯*/
cbreak();/*將輸入模式設置為字元中止模式*/
while ((c=getch())!='x')/*用getch()讀取字元,循環用於演示,按x鍵結束程序*/
if (c!='a') {/*如果輸入的不是a就輸出這個字元*/
addch(c);/*在當前游標位置添加字元*/
refresh();/*刷新屏幕*/
}
nocbreak();/*將輸入模式重新設置為默認的行模式*/
endwin();/*結束curses程序*/
return 0;
}

熱點內容
安卓哪裡填寫apple代碼 發布:2025-02-05 00:28:54 瀏覽:289
oppo手機鎖屏密碼忘記後如何更換 發布:2025-02-05 00:28:19 瀏覽:26
幼兒思維編程 發布:2025-02-05 00:18:21 瀏覽:25
我的世界電腦正版如何進入伺服器 發布:2025-02-05 00:18:06 瀏覽:880
疫情防控健康碼預警機制演練腳本 發布:2025-02-04 23:58:46 瀏覽:39
分治演算法java 發布:2025-02-04 23:41:15 瀏覽:593
安卓app點進去就閃退怎麼回事 發布:2025-02-04 23:36:56 瀏覽:780
宏按鍵編程 發布:2025-02-04 23:05:11 瀏覽:904
微信隱形密碼在哪裡設置 發布:2025-02-04 23:05:01 瀏覽:866
android的補間動畫 發布:2025-02-04 23:03:42 瀏覽:416