当前位置:首页 » 编程语言 » 禁止语言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;
}

热点内容
pb编译的模板无法勾选 发布:2025-03-16 11:35:09 浏览:761
利用电信云搭建服务器 发布:2025-03-16 11:35:05 浏览:108
安卓高级开发考什么 发布:2025-03-16 11:20:35 浏览:717
揽胜哪个配置带二代地形 发布:2025-03-16 11:16:52 浏览:970
c语言数组存储文件 发布:2025-03-16 11:16:48 浏览:789
sqlserver2016r 发布:2025-03-16 11:15:58 浏览:27
网页登录找不到该服务器什么意思 发布:2025-03-16 11:14:19 浏览:832
网站搭建服务器搭建 发布:2025-03-16 10:33:27 浏览:795
游戏目录在哪里安卓 发布:2025-03-16 10:33:19 浏览:467
婉儿脚本 发布:2025-03-16 10:19:33 浏览:580