C 中的变长数组 VLA
偶尔看到 C Primer Plus 中讲到变长数组(VLA),很有意思。
作者在他的 C Primer Plus 和 C++ Primer Plus 里面都明确指出,定义数组时数组的元素个数必须是整型常量,不能是变量。但是在 C 这本书里讲到变长数组 VLA,在 C++ 那本里面又没有提。不知道为什么?想来一定是 VLA 用起来有些不太明确的地方。
我试着写了个小程序测试,编译运行都很正常。
#include <iostream>
void vla(int length)
{
int v[length];
for (int i=0; i < length; i++)
{
v[length] = i;
std::cout << v[i] << "\n";
}
return 0;
}
int main()
{
int length=0;
std::cout << "Enter length: ";
std::cin >> length;
vla(length);
return 0;
}
这样处理动态内存分配也是很好的啊!没有了内存泄露的问题,方便了,也简单了。
只是 C Primer Plus 的作者指出,必须要确定编译器的版本能够支持 VLA 特性。呵呵!
相关文档:
头文件一般由三部分内容组成:(1)头文件开头处的版权和版本声明;(2)预处理块;(3)函数和类结构声明等。
头文件扩展名为*.h。
为避免出现重复定义的问题 ,头文件一般写法如下:
/*----------------------------------------------------
MATH.H
-------------------------------------------------------*/
#ifndef& ......
精短高效的XML解析器,纯C单一程序,应用于银行的国税库行横向联网接口系统中,稳定可靠,运行速度飞快,非相应的JAVA程序可比.以下为大部分源码:
/* Copyright (c) 2005 wzs */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <varargs.h>
#i ......
一、XML只有一个Table的情况
(1)userInfo.xml
<?xml version="1.0" encoding="utf-8" ?>
<UserInfo ......
什么是socket
长连接与短连接
所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。
短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。
比如ht ......
字符数组和字符串
&字符数组和字符串的概念 &字符数组的初始化
&字符串的输入输出 &综合举例
字符数组和字符串的概念
字符数组是元素类型为字符的数组 ,它既具有普通数组的一般性质 ,又具有某些特殊性质。
& ......