内存问题-C中字符串定义时出现的问题

问题描述

C中字符串定义时出现的问题
 #include<stdio.h>

int  main()
{
    char str[81];
    char c;
    int i,num=0;
    gets(str);
    while(str[i]!='')
    {
        if(str[i]==' ')
            num++;
        i++;
    }
    num++;
    printf("%d",num);

    return  0;
}

程序运行后报错!
unhandle exception 0x00000005:Access violation
调试时字符数组时,str对应的值显示成红色,还有个提醒variable need stack frame

什么意思求解答

解决方案

i 初始化
int i = 0;

时间: 2024-09-20 06:10:53

内存问题-C中字符串定义时出现的问题的相关文章

js中函数定义时遇到的错误

问题描述 js中函数定义时遇到的错误 Syntax error on token ""Invalid Character"" ; expected,IDE错误提示.我在js中定义函数,对象点方法名,没注意到点用的是中文的.js中定义函数还有哪些类似的错误. 解决方案 不要把关键字定义成函数名 解决方案二: JS区分大小写,单词拼写错误等等 解决方案三: 一些常用的JS自定义函数整理 解决方案四: http://wenku.baidu.com/link?url=qEW

对象-为什么ECLIPSE中不能定义时赋值

问题描述 为什么ECLIPSE中不能定义时赋值 package 用static输出对象的个数; class A { private static int cnt=0; public void f() { cnt++; } static int out(int i) { return cnt; } } public class 用static输出对象的个数 { public static void main(String[] args) { int i; A aa1=new A(); A aa2=

C语言中字符串的内存地址操作的相关函数简介_C 语言

C语言bcopy()函数:复制内存(字符串)头文件: #include <string.h> bcopy() 函数用来复制内存(字符串),其原型为: void bcopy(const void *src, void *dest, int n); [参数]src 为源内存块(字符串)指针,dest 为目标内存块(字符串)指针,n 为要复制的内存(字符串)的前 n 个字节长度. bcopy()与memcpy()一样都是用来拷贝src 所指的内存内容前n 个字节到dest 所指的地址,不过参数src

java-JAVA中数组定义new分配内存空间的问题

问题描述 JAVA中数组定义new分配内存空间的问题 JAVA中在定义一个数组的时候,根据书上内容形式,举一个例子 int[] arr=new int[]{3,4,5,}; 但是在实际中,我见到过或者使用更多的是 int[] arr={3,4,5}; 这个时候要不要new去分配内存又有什么区别呢? 在JAVA中 是不是没有new 分配的时候 数组arr在内存栈中 new分配内存空间时 数组arr就到了堆内存中呢 解决方案 现在也不是很理解,找了一个大神告诉我说 第二种是静态初始化,在编译的时候就

java中创建数组时内存怎么分配????

问题描述 java中创建数组时内存怎么分配???? int[] arr=new int[3]; 问题: 上面创建int数组时,怎么分配内存的?arr是一个引用变量,是通过指针指向new int[3](存在堆里面)对吧,那么,栈里面为arr分配几个指针,是3个还是1个? 补充: 疑问1****: 其实我就是想知道java中创建数组时,栈中分配几个指针,是一个还是"数组长度"个? 疑问2****: 如果是一个,那么,这个指正指向谁???? 疑问3****: 如果指向的是第一个元素,那么,该

引入DTD定义时jsp中的变量没有替换

问题描述 引入DTD定义时jsp中的变量没有替换 编写了一个简单的jsp页面,运行后发现页面中的${pageContext.request.contextPath}等变量没有替换为相应的值,而是被直接显示,查看tomcat为jsp生成的java文件,发现这些变量没有替换为获取变量的代码,而是被当做字符串了,对比了一下能够正常运行的工程,发现唯一的区别只是web.xml的头部多定义了一个DTD文件做校验,是maven的webapp模板生成的web.xml自动生成的,如下 <!DOCTYPE web

基于Java中字符串内存位置详解_java

前言 之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解释一下JVM的内存区域划分,这部分答得还不错,但是后来又问了Java里面String存放的位置,之前只记得String是一个不变的量,应该是要存放在常量池里面的,但是后来问到new一个String出来应该是放到哪里的,这个应该是放到堆里面的,后来又问到String的引用是放在什么地方的,当时傻逼的说也是放在堆里面的,现在总结一下:基本类型的变量数据和对象的引用都是放在栈里面的,对象本身放在堆里面,

javascript中字符串的定义示例代码

 javascript中字符串如何定义,下面有个不错的示例,大家可以学习下  代码如下: <html>  <head>  <title>javascript中字符串的定义</title>  <script>  //定义字符串  //第一种  var str = new Array();  alert(str);//空字符  //第二种  var str2 = new Array("hello");  alert(str2);/

stm32-在iar中编译STM32时出现SystemInit为定义的错误。我是初学者求大牛帮忙!!

问题描述 在iar中编译STM32时出现SystemInit为定义的错误.我是初学者求大牛帮忙!! 解决方案 还出现了这个错误